﻿@using ABC.Controllers.ViewModels.My.News.Admin
@model NewsManagementViewModel
@{
    ViewBag.Title = "Управление новостями - Азбука24";
    Layout = "~/Views/Shared/_MyLayout.cshtml";
    var rubricP = Request.Params["rubric"];
    var sourceP = Request.Params["source"];
    var authorIdP = Request.Params["authorId"];
}
<script type="text/javascript">
    function Publish(obj) {
        var chk = $(obj).parents("tr").children("td").children("input[type='checkbox']");
        var icon = $(obj).children("i");

        $.ajax({
            url: '@Url.Action("Publish", "Admin")',
            type: "POST",
            data: { id: chk.val(), isPublic: icon.hasClass("icon-eye-close") },
            success: function (data) {
                if (data == "ok") {
                    icon.toggleClass("icon-eye-open").toggleClass("icon-eye-close");
                    icon.hasClass("icon-eye-open") ? $(obj).attr("data-original-title", "Изъять из публикации") : $(obj).attr("data-original-title", "Опубликовать");
                }
            }
        });
    }
    function GetNews() {
        location.href = '@Url.Action("News", "Admin")' + "?rubric=" + $("#category").val() + "&source=" + $("#source").val();
    }
    function ResetFilter() {
        $("#category").val("");
        $("#source").val("");
    }

    function CheckPeriod(obj) {             //обработчик чекбоксов периодов новостей
        if ($(obj).is(":checked")) {
            $("input[group='" + $(obj).attr('group') + "']").attr("checked", "checked");
        }
        else {
            $("input[group='" + $(obj).attr('group') + "']").removeAttr("checked");
        }
        ChangeOfState();
    }

    function ChangeOfState() {              //отслеживание изменения главного чекбокса в хидере
        if ($("input[name='periodnews']").not(":checked").length > 0) {
            $("#inlineCheckbox01").removeAttr("checked");
        }
        else {
            $("#inlineCheckbox01").attr("checked", "checked");
        } 
    }
    
    function CheckOne(obj) {                //обработчик чекбоксов отдельных новостей
        var allCheckInPeriod = $("input[name='checknews'][group='" + $(obj).attr('group') + "']");
        if (allCheckInPeriod.not(":checked").length > 0) {
            $("input[name='periodnews'][group='" + $(obj).attr('group') + "']").removeAttr("checked");
        }
        else {
            $("input[name='periodnews'][group='" + $(obj).attr('group') + "']").attr("checked", "checked");
        }
        ChangeOfState();
    }
    function CheckAll(obj) {                //обработчик главного чекбокса в хидере таблицы
        if ($(obj).is(":checked")) {
            $("input[name='periodnews']").attr("checked", "checked");
            $("input[name='checknews']").attr("checked", "checked");
        }
        else {
            $("input[name='periodnews']").removeAttr("checked");
            $("input[name='checknews']").removeAttr("checked");
        }
    }
</script>
<div class="row-fluid">
    @{Html.RenderPartial("_NewsManagmentLeftMenu");}
    <div class="span9">
        <div class="page-header">
            <h1>
                Добавление новости</h1>
        </div>
        <div class="row-fluid">
            <div class="span3">
                <div class="control-group">
                    <label class="control-label" for="category">
                        Категория</label>
                    <div class="controls">
                        @Html.DropDownListFor(x => x.Rubric, Model.ListForRubric, "Все категории", new { @class = "input-medium", id = "category" })
                    </div>
                </div>
            </div>
            <div class="span3">
                <div class="control-group">
                    <label class="control-label" for="source">
                        Источник</label>
                    <div class="controls">
                        @Html.DropDownListFor(x => x.Source, Model.ListForSource, "Все источники", new { @class = "input-medium", id = "source" })
                    </div>
                </div>
            </div>
            <div class="span3">
                <div class="control-group">
                    <label class="control-label" for="autor">
                        Автор</label>
                    <div class="controls">
                        <select class="input-medium" id="autor">
                            <option selected="">Все авторы</option>
                            <option>КАСКО</option>
                            <option>ОСАГО</option>
                        </select>
                    </div>
                </div>
            </div>
            <div class="span3">
                <div class="control-group">
                    <label class="control-label" for="phone-01">
                        Фильтр</label>
                    <div class="controls">
                        <div class="btn-group">
                            <button type="button" class="btn" onclick="GetNews();">
                                Применить</button>
                            <button class="btn" rel="tooltip" data-original-title="Сбросить фильтр" onclick="ResetFilter();">
                                <i class="icon-refresh"></i>
                            </button>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <table class="table table-bordered table-striped">
            <thead>
                <tr>
                    <th class="col-1">
                        <input type="checkbox" id="inlineCheckbox01" onclick="CheckAll(this);" value="option0" title="Выделить все">
                    </th>
                    <th>
                        Опубликована
                    </th>
                    <th>
                        Заголовок
                    </th>
                    <th>
                        Категория
                    </th>
                    <th>
                        Источник
                    </th>
                    <th>
                        Автор
                    </th>
                    <th>
                        Управление
                    </th>
                </tr>
            </thead>
            <tbody>
                @using (Html.BeginForm("PostData", "Admin", FormMethod.Post, new { id = "form1" }))
                {
                    @Html.HiddenFor(x => x.IsDelete)
                    for (int i = 0; i < Model.News.Count; i++)
                    {
                        if (i == 0)
                        {
                    <tr>
                        <th>
                            <input type="checkbox" name="periodnews" group="@Model.News[i].TimeOfPublication.ToString("MM-yyyy")" onclick="CheckPeriod(this);" title="Отметить все в заданном периоде">
                        </th>
                        <th colspan="100%">
                            @Model.News[i].TimeOfPublication.ToString("MMMM yyyy")
                        </th>
                    </tr>
                        }
                        else
                        {
                            if (Model.News[i].TimeOfPublication.ToString("MMMM yyyy") != Model.News[i - 1].TimeOfPublication.ToString("MMMM yyyy"))
                            {
                    <tr>
                        <th>
                            <input type="checkbox" name="periodnews"  group="@Model.News[i].TimeOfPublication.ToString("MM-yyyy")" onclick="CheckPeriod(this);" title="Отметить все в заданном периоде">
                        </th>
                        <th colspan="100%">
                            @Model.News[i].TimeOfPublication.ToString("MMMM yyyy")
                        </th>
                    </tr>
                            }
                        }          
                    <tr>
                        <td class="col-1">
                            <input type="checkbox" name="checknews" group="@Model.News[i].TimeOfPublication.ToString("MM-yyyy")" onclick="CheckOne(this);" value="@Model.News[i].Id" title="Отметить">
                        </td>
                        <td>
                            @Model.News[i].TimeOfPublication.ToString("dd MMMM yyyy HH:mm")
                        </td>
                        <td>
                            <a target="_blank" href="@Url.Action("New", "News", new { id = Model.News[i].Id })" title="Просмотр новости">@Model.News[i].Title</a>
                            <!-- Ссылка на новость в публичной части -->
                        </td>
                        <td>
                            <a href="@Url.Action("News", "Admin", new { page = 1, rubric = Model.News[i].Rubric })" title="Фильтровать по категории">@Model.News[i].Rubric</a>
                            <!-- Ссылка фильтрует все новости по категории -->
                        </td>
                        <td>
                            <a href="@Url.Action("News", "Admin", new { page = 1, source = Model.News[i].Source })" title="Фильтровать по источнику">@Model.News[i].Source</a>
                            <!-- Ссылка фильтрует все новости по источнику -->
                        </td>
                        <td>
                            <a href="@Url.Action("News", "Admin", new { page = 1, authorId = Model.News[i].OwnerId })" title="Фильтровать по автору">@Model.News[i].AuthorFullName</a>
                            <!-- Ссылка фильтрует все новости по автору -->
                        </td>
                        <td>
                            <div class="btn-group">
                                <button class="btn" type="button" href="#fin-record" rel="tooltip" onclick="Publish(this);" data-original-title="@(Model.News[i].IsPublication ? "Изъять из публикации" : "Опубликовать")" >
                                    <!-- Когда новость изъята из публикаци, на кнопке показывать иконку icon-eye-close, и title="Опубликовать" -->
                                    <i class="@(Model.News[i].IsPublication ? "icon-eye-open" : "icon-eye-close")"></i>
                                </button>
                                <button class="btn" type="button" onclick="location.href='@Url.Action("AddNews", "Admin", new { id = Model.News[i].Id })'" rel="tooltip" data-original-title="Редактировать">
                                    <i class="icon-edit"></i>
                                </button>
                            </div>
                        </td>
                    </tr>
                    }
                }
            </tbody>
        </table>
        <script type="text/javascript">
            
        </script>
        <div class="btn-toolbar">
            <form class="form-inline">
            <div class="control-group">
                <div class="pagination">
                    <ul>
                        @Html.Paging(Model.PageNumber, Model.PageCount, i => Url.Action("News", "Admin", new { page = i, rubric = rubricP, source = sourceP, authorId = authorIdP }))
                    </ul>
                </div>
            </div>
            </form>
            <button class="btn btn-success" data-toggle="modal" onclick="location.href='@Url.Action("AddNews", "Admin")'">
                Добавить новость</button>
            <button class="btn" type="button" onclick="$('#IsDelete').val('False'); $('#form1').submit();">
                Изъять из публикации</button>
            <button class="btn" onclick="$('#IsDelete').val('True'); $('#form1').submit();" type="button">
                Удалить</button>
        </div>
    </div>
</div>
